var streamTimerInterval = 150;
var streamLoader = null;
var limit = 350;
var activeFilter = null;

// Only used for location streams.
var locationId;
var locationType;

// Shows the loader of the stream.
function showStreamLoader(){
    streamLoader = '<li id="streamLoader"><div class="loader" id="actualStreamLoader"></div><div class="clear"></div></li>';
    streamLoader = $(streamLoader);
    streamLoader.appendTo('#stream');
}

function removeStreamLoader(){
    streamLoader.remove();
}

// Set date filter.
function setFilter(element){
	activeFilter = element.attr('id');
	$('#filterList li').removeClass('active');
	$('#filterDateInput').removeClass('active');
    
    if(activeFilter !== 'date'){
        $('#filterDateInput').val('');
    }
    
	element.addClass('active');
	updateStream();
}

// Document ready, initialize the filter events.
$(document).ready(function(){
	$('#filterList li').click(function(){
		if($(this).attr('id') !== 'date'){
			setFilter($(this));
		}
	});
	
	$('#filterDateInput').datepicker({
		dateFormat: 'dd-mm-yy',
		showAnim: false,
		showOtherMonths: true,
		selectOtherMonths: true,
		onSelect: function(dateText, inst){
			setFilter($('#date'));
			$('#filterList li').removeClass('active');
			$('#filterDateInput').addClass('active');
		}
	});
	
    setFilter($('#mostRecent'));
});

// OLD CRAP BELOW
//var activeDefaultFilter = null;
//var streamingStarted;
//var limitDefault = 100;
//var limitIncrease = 3;
//var limit = limitDefault;
//var totalRows = 0;
//
//// Extra filters.
//var displayMales = true;
//var displayFemales = true;
//var displaySinglesOnly = false;
//var displayFriendsOnly = false;
//
//function setFilter(element){
//	activeDefaultFilter = element.attr('id');
//	$('#filterList li').removeClass('active');
//	$('#filterDateInput').removeClass('active');
//	element.addClass('active');
//	updateStream();
//	limit = limitDefault;
//}
//
//var streamLoader;
//
//function showStreamLoader(){
//	streamLoader = $('<li id="streamLoader"><div class="loader" id="actualStreamLoader"></div><div class="clear"></div></li>');
//	streamLoader.appendTo($('#stream'));
//	streamLoader.show();
//}
//
//function hideStreamLoader(){
//	streamLoader.remove();
//}
//
//function readHomepageStream(){
//    
//}
//
//function updateStream(callback){
//
//	var extraFilters = {
//	};
//	
//	if(streamPage === 'companyProfile'){
//		extraFilters = {
//			'displayMales':displayMales,
//			'displayFemales':displayFemales,
//			'displaySinglesOnly':displaySinglesOnly,
//			'displayFriendsOnly':displayFriendsOnly
//		}
//	}
//
//	if(activeDefaultFilter === 'date'){
//		var objId = parameters.objId;
//		
//		parameters = {
//			'objId': objId,
//			'date': $('#filterDateInput').val()
//		};
//	}
//
//	$('#stream').empty();
//	showStreamLoader();
//	
//	$.ajax({
//		data: {
//			'page': streamPage,
//			'filter': activeDefaultFilter,
//			'parameters': parameters,
//			'extraFilters':extraFilters,
//			'limit': limit
//		},
//		url: 'ajaj/readHomepageStream',
//		type: 'POST',
//		dataType: 'json',
//		success: function(results){
//			if(results){
//			
//				// Set the stats!
//				if(results.stats){				
//					$('#totalStats').html(results.stats.count);
//					$('#singleStats').html(results.stats.singles);
//					$('#malesStats').html(results.stats.males);
//					$('#femaleStats').html(results.stats.females);
//				}
//				
//				totalRows = results.stats.count;
//			
//				if(results.activities){
//					populateStream(results.activities);
//				}
//				
//				createLimiter();
//			} else {
//				showEmptyStream();
//			}
//			
//			hideStreamLoader();
//			
//			if(callback !== undefined){
//				callback();
//			}
//		}
//	});
//}
//
//function showEmptyStream(){
//	var li = '<li id="streamEmpty">Geen activiteiten gevonden. Probeer uw filter aan te passen.</li>';
//	li = $(li);
//	li.click(function(){
//		$('#filterList').animate({
//			'padding-top': '5px'
//		}, 50, function(){
//			$('#filterList').animate({
//				'padding-top': '0px'
//			}, 50);
//		});
//	});
//	li.appendTo(stream);
//}
//
//function createLimiter(){
///*
//	if((limit) < totalRows){	
//		var addLimit = '<li id="addLimit">Klik hier voor meer resultaten</li>';
//		addLimit = $(addLimit);
//		addLimit.click(function(){
//			limit += limitIncrease;
//			updateStream(function(){
//				$('html, body').animate({
//					scrollTop: $('#stream').height()
//				}, 1000); 
//				// console.log($('#stream'));
//				// $("#stream").attr({ scrollTop: $("#stream").attr("scrollHeight") });
//				// $("#stream").animate({ scrollTop: $("#stream").attr("scrollHeight") }, 3000);
//			});
//		});
//		addLimit.appendTo('#stream');
//	}
//*/
//}
//
//function constructTitle(result){
//	var title = '<a href="' + url + 'profile/user/' + result.userId + '">' + ucwords(result.firstName) + '</a>';
//	var withWhoCount = 0;
//	
//	if(result.withWho && result.withWho.length){
//		$.each(result.withWho, function(index, value){
//			withWhoCount++;
//			var separator = ', ';
//
//			if(result.withWho.length === withWhoCount){
//				separator = ' en ';
//			}
//			
//			title += separator + '<a href="' + url + '"profile/user/' + value.id + '>' + ucwords(value.name) + '</a>';
//		});
//	}
//	
//	return title;
//}
//
//function constructMessage(result){
//	var message = ucwords(result.messageHelper[0]) + ' ';
//	
//	if(result.messageHelper[1]){
//		message += result.messageHelper[1];
//	} else {
//		message += result.messageHelper[2];
//	}
//	
//	var link = '<a href="' + url + 'profile/';
//	
//	if(result.destinationObjectType === '1'){
//		link += 'location/' + '/' + result.destinationObjectId + '">' + ucwords(result.object.name) + '</a>';
//	} else if(result.destinationObjectType === '2'){
//		if(result.object[0]){
//			link += 'user/' + '/' + result.destinationObjectId + '">' + ucwords(result.object[0]['name']) + '</a>';
//		} else {
//			link += 'user/' + '/' + result.destinationObjectId + '">' + ucwords(result.object['name']) + '</a>';
//		}
//	} else if(result.destinationObjectType === '3'){
//		link += 'city/' + '/' + result.destinationObjectId + '">' + ucwords(result.object.name) + '</a>';
//	}
//	
//	result.time = result.time.substr(0, 5);
//	
//	if(result.time !== '00:00'){
//		message += ' om ' + result.time;
//	}
//	
//	message += ' naar ' + link;
//	
//	return message ;
//}
//
//function populateStream(results){
//	var indexCount = 0;
//	var maxL = results.length;
//
//	$.each(results, function(index, value){
//		var id = '';
//	
//		if(indexCount === 0){
//			id = 'id="latestItem"';
//		}
//		
//		var li = '<li ' + id + '>';
//		li += '<div class="picture">';
//			li += '<img src="https://graph.facebook.com/' + value.userId + '/picture" alt="' + ucwords(value.firstName) + '" />';
//		li += '</div>';
//		li += '<table class="content">';
//			li += '<tr>';
//				li += '<td class="title">' + constructTitle(value) + '</td>';
//			li += '</tr>';
//			li += '<tr>';	
//				li += '<td class="message">' + constructMessage(value) + '</td>';
//			li += '</tr>';
//			li += '<tr>';
//				li += '<td class="datetime">3 minuten geleden geplaatst.</td>';
//			li += '</tr>';
//		li += '</table>';
//		
//		li += '<div class="controls">';
//			li += '<div class="normal">';
//			
//				if(value.tag){
//					li += '<div><a href="' + url + 'profile/tag/' + value.tag.id + '">' + ucwords(value.tag.name) + '</a></div>'; 
//				}
//			
//			li += '</div>';
//		li += '</div>';
//		li += '<div class="clear"></div>';
//		li += '</li>';
//		
//		li = $(li);
//		li.appendTo($('#stream'));
//		indexCount++;
//	});
//}
//
//$(document).ready(function(){
//	
//	// Initialize filters.
//	if(streamPage === 'companyProfile'){
//		$('#displayMales').find('.radioButton').addClass('checked');
//		$('#displayFemales').find('.radioButton').addClass('checked');
//	}
//	
//	$('#displayMales').click(function(){
//		if(displayMales){
//			displayMales = false;
//		} else {
//			displayMales = true;
//		}
//	});
//	
//	$('#displayFemales').click(function(){
//		if(displayFemales){
//			displayFemales = false;
//		} else {
//			displayFemales = true;
//		}
//	});
//	
//	$('#displaySinglesOnly').click(function(){
//		if(displaySinglesOnly){
//			displaySinglesOnly = false;
//		} else {
//			displaySinglesOnly = true;
//		}
//	});
//	
//	$('#displayFriendsOnly').click(function(){
//		if(displayFriendsOnly){
//			displayFriendsOnly = false;
//		} else {
//			displayFriendsOnly = true;
//		}
//	});
//
//	$('.controls .hover').hide();
//	
//	$('#activityList li').mouseover(function(){
//		$(this).find('.hover').show();
//	});
//
//	$('#activityList li').mouseout(function(){
//		$(this).find('.hover').hide();
//	});
//	
//	$('#activityList li').click(function(){
//		if(!$(this).find('.hiddenContent').is(":visible")){
//			$(this).find('.hiddenContent').show();
//		} else {
//			$(this).find('.hiddenContent').hide();
//		}
//	});
//
//	$('#filterList li').click(function(){
//		if($(this).attr('id') !== 'date'){
//			setFilter($(this));
//		}
//	});
//	
//	$('#extraFilterList li').click(function(){
//		if(!$(this).find('.radioButton').hasClass('checked')){
//			$(this).find('.radioButton').addClass('checked');
//		} else {
//			$(this).find('.radioButton').removeClass('checked');
//		}
//		
//		updateStream();
//	});
//	
//	$('#filterDateInput').datepicker({
//		dateFormat: 'dd-mm-yy',
//		showAnim: false,
//		showOtherMonths: true,
//		selectOtherMonths: true,
//		onSelect: function(dateText, inst){
//			setFilter($('#date'));
//			$('#filterList li').removeClass('active');
//			$('#filterDateInput').addClass('active');
//		}
//	});
//	
//	setFilter($('#mostRecent'));
//});